#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileDialog>
#include <QMessageBox>
#include <QStringList>
#include <QFileInfo>
#include <QSettings>
#include <QVector>

// lookup test
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
// lookup test

// detail test
#include <QPixmap>
#include <QImage>
#include <QBuffer>
#include <QSqlRecord>
#include <QVariant>
// detail test

#include "datacollector.h"
#include "movie.h"
#include "mediafactory.h"
#include "tmdb.h"
#include "settings.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    ///
    /// Start scanning process
    void scan();

    ///
    /// Refreshs the movie list table
    void refresh();

    ///
    /// Online database lookup
    void lookup();

    ///
    /// Loads the movie details
    void loadDetails();

    ///
    /// Loads the settings window
    void loadSettingsDialog();
    
private:
    ///
    /// Initialize all actions
    void setupActions();

    Ui::MainWindow *ui;
    MovieList movieList_;
    Tmdb *tmdb_;
};

#endif // MAINWINDOW_H
